## DESCRIPTION
## Differential calculus: dynamically generated graph of a function with shading
## ENDDESCRIPTION

## KEYWORDS('precalculus', 'dynamic graph with shading')

## DBsubject('WeBWorK')
## DBchapter('WeBWorK Tutorial')
## DBsection('Fort Lewis Tutorial 2011')
## Date('01/30/2011')
## Author('Paul Pearson')
## Institution('Fort Lewis College')
## TitleText1('')
## EditionText1('')
## AuthorText1('')
## Section1('')
## Problem1('')


#############################################
#  Initialization

DOCUMENT();

loadMacros(
"PGstandard.pl",
"MathObjects.pl",
"AnswerFormatHelp.pl",
"PGgraphmacros.pl",
"unionTables.pl",
);

TEXT(beginproblem());

$refreshCachedImages = 1;


##############################################
#  Setup

Context("Numeric");

$a = random(0,3,1);
$f = Formula("sqrt(x)+$a");

$answer = Compute("(2/3) * (4^(3/2) - 1) + 3*$a");

#
#  Graph canvas
#
$gr = init_graph(-5,-5,5,5,grid=>[10,10],axes=>[0,0],pixels=>[300,300]);

#
#  Graph labels
#
$gr->lb('reset');
foreach my $j (1..4) {
  $gr->lb( new Label(-4.7,  $j, $j,'black','center','middle'));
  $gr->lb( new Label(-4.7, -$j,-$j,'black','center','middle'));
  $gr->lb( new Label(  $j,-4.7, $j,'black','center','middle'));
  $gr->lb( new Label( -$j,-4.7,-$j,'black','center','middle'));
}
$gr->lb( new Label(4.7,0.2,'x','black','center','middle'));
$gr->lb( new Label(0.2,4.7,'y','black','center','middle'));


#
#  Define new graph colors
#
$gr->new_color("lightblue", 214,230,244); # RGB
$gr->new_color("darkblue",  100,100,255);
$gr->new_color("lightgreen",156,215,151); 
$gr->new_color("darkgreen",   0, 86, 34);
$gr->new_color("lightred",  245,234,229); # light red-purple
$gr->new_color("darkred",   159, 64, 16); # red-brown


#
#  Choose colors
#
$light = "lightblue";
$dark = "darkblue";

#
#  Graph the function and the filled region
#
add_functions($gr,
"$f  for x in <0,5> using color:$dark and weight:2");
$gr->moveTo(1,$a+1);
$gr->lineTo(1,0,$dark,2);
$gr->lineTo(4,0,$dark,2);
$gr->lineTo(4,$a+2,$dark,2);
$gr->fillRegion([1.1,0.1,$light]
);


#############################################
#  Main text

Context()->texStrings;
BEGIN_TEXT
\{
ColumnTable(
"Use the graph to find the area of the shaded
region under \( f(x) = $f \).
$BR
$BR
Area = " . 
ans_rule(20).$SPACE.
AnswerFormatHelp("numbers")
,
image( insertGraph($gr),height=>300,width=>300,tex_size=>800 ).
$BR.$BCENTER.
$BR.
"Graph of \( y = f(x) \)".
$ECENTER
,
indent => 0, separation => 30, valign => "TOP"
)
\}
END_TEXT
Context()->normalStrings;


###############################################
#  Answer evaluation

$showPartialCorrectAnswers = 1;

ANS( $answer->cmp() );

############################
#  Solution

Context()->texStrings;
BEGIN_SOLUTION
${PAR}SOLUTION:${PAR}
Solution explanation goes here.
END_SOLUTION
Context()->normalStrings;

COMMENT('MathObject version.');

ENDDOCUMENT();
